using System.ComponentModel;
using System.Runtime.CompilerServices;
using SageKing.Designer.Core.Attributes;
using SageKing.Designer.Core.Contracts;

namespace SageKing.Designer.Core.Activities;

/// <summary>
/// Execute a set of activities in parallel.
/// </summary>
[Activity("SageKing", "Workflows", "Execute a set of activities in parallel.")]
[Browsable(false)] // Hidden from the designer until we have Sequential activity designer support.
public class Parallel : Container
{
    private const string ScheduledChildrenProperty = "ScheduledChildren";

    /// <inheritdoc />
    public Parallel([CallerFilePath] string? source = default, [CallerLineNumber] int? line = default) : base(source, line)
    {
    }
    
    /// <inheritdoc />
    public Parallel(params IActivity[] activities) : this()
    {
        Activities = activities;
    } 
}